#define  _CRT_SECURE_NO_WARNINGS

#include<stdio.h>


//
//int minNumberInRotateArray(int* nums, int numsLen) {
//    // write code here
//    int left = 0;
//    int right = numsLen - 1;
//    int mid = (left + right) / 2;
//    while (left < right - 1)
//    {
//        if (nums[left] < nums[right])
//        {
//            if (nums[mid] == nums[left] || nums[mid] == nums[right])
//            {
//                right = mid;
//            }
//            else
//            {
//                if (nums[mid] > nums[left] && nums[mid] > nums[right])
//                {
//                    left = mid;
//                }
//                else if (nums[mid] > nums[left] && nums[mid] < nums[right])
//                {
//                    right = mid;
//                }
//                else//nums[mid]<nums[left]&&nums[mid]<nums[right]
//                {
//                    right = mid;
//                }
//            }
//        }
//        else if (nums[left] == nums[right])
//        {
//            int i = 0;
//            for (i = 1;; i++)
//            {
//                if (nums[left + i] < nums[left])
//                {
//                    left += i;
//                    break;
//                }
//                if (nums[right - i] < nums[right])
//                {
//                    right -= i;
//                    break;
//                }
//                if ((left + i) >= (right - i))
//                {
//                    return nums[left];
//                }
//            }
//        }
//        else//nums[left]>nums[right]
//        {
//            if (nums[mid] == nums[left])
//            {
//                left = mid;
//            }
//            else if (nums[mid] == nums[right])
//            {
//                right = mid;
//            }
//            else
//            {
//                if (nums[mid] > nums[left] && nums[mid] > nums[right])
//                {
//                    left = mid;
//                }
//                /*  else if(nums[mid]<nums[left]&&nums[mid]>nums[right])
//                  {
//                      ;
//                  }*/
//                else
//                {
//                    right = mid;
//                }
//            }
//        }
//
//        mid = (left + right) / 2;
//    }
//    return nums[left] < nums[right] ? nums[left] : nums[right];
//}